package com.fy.oa.zc.service;

import java.util.List;

import com.fy.oa.zc.domain.FySummaryView;
import com.seeyon.apps.collaboration.event.AbstractCollaborationEvent;

public interface FyOAFormEventDeal {

	// public final static short PORCESS_EVENT = 0;
	// public final static short FINISH_EVENT = 0;
	// public final static short START_EVENT = 0;
	// public final static short STOP_EVENT = 0;
	// public final static short CANCEL_EVENT = 0;
	// public final static short StepBack_EVENT = 0;

	public String deal(AbstractCollaborationEvent event);
	// /**
	// * 提交事件处理
	// * @param affairid TODO
	// * @return String 结果消息 @ TODO
	// */
	// public String dealProcessEvent(String templateCode,String eventName,long
	// summaryID, long affairid);
	//
	// /**
	// * 流程结束事件处理
	// * @param affairid TODO
	// * @return String 结果消息 @ TODO
	// */
	// public String dealFinishEvent(String templateCode,String eventName,long
	// summaryID, long affairid);
	//
	// /**
	// * 发送事件处理
	// * @return String 结果消息 @ TODO
	// */
	// public String dealStartEvent(String templateCode,String eventName,long
	// summaryID);
	//
	// /**
	// * 终止事件处理
	// * @return String 结果消息 @ TODO
	// */
	// public String dealStopEvent(String templateCode,String eventName,long
	// summaryID);
	//
	// /**
	// * 撤销事件处理
	// * @param userid TODO
	// * @param message TODO
	// * @return String 结果消息 @ TODO
	// */
	// public String dealCancelEvent(String templateCode,String eventName,long
	// summaryID, long userid, String message);
	//
	// /**
	// * 回退事件处理
	// * @return String 结果消息 @ TODO
	// */
	// public String dealStepBackEvent(String templateCode,String eventName,long
	// summaryID);

	public String dealProcessEvent(FyOAFormHandlerAccess fyOAFormHandlerAccess, FySummaryView view, long affairid);

	public String dealFinishEvent(FyOAFormHandlerAccess fyOAFormHandlerAccess, FySummaryView view, long affairid);

	public String dealStartEvent(FyOAFormHandlerAccess fyOAFormHandlerAccess, FySummaryView view);

	public String dealStopEvent(FyOAFormHandlerAccess fyOAFormHandlerAccess, FySummaryView view);

	public String dealCancelEvent(FyOAFormHandlerAccess fyOAFormHandlerAccess, FySummaryView view, long userID,
			String msg);

	public String dealStepBackEvent(FyOAFormHandlerAccess fyOAFormHandlerAccess, FySummaryView view);

	/**
	 * 监听事项设置
	 * 
	 * @param fyOAFormHandlerAccessList
	 *            {@link List}<{@link FyOAFormHandlerAccess}> 监听事项
	 * @return String 结果消息
	 */
	public void setFyOAFormHandlerAccessList(List<FyOAFormHandlerAccess> fyOAFormHandlerAccessList);
}